Users of computer systems acquire software applications from a variety of sources today. Whereas traditionally software was distributed by selling boxed software with optical or other disks on a retail store shelf, today users may download software applications from the Internet, install applications provided by one or more application stores or repositories (e.g., the WINDOWS™ Marketplace, Ubuntu Software Center, and Mac App Store), receive applications via email, receive applications on a universal serial bus (USB) drive, and so forth. Software may still be purchased from a store, but has expanded from several well-known software companies to include many providers that may only make and sell one or two applications.
Application stores today often include hundreds of thousands of applications. Users have relatively few ways of determining which applications are interesting. Some application stores provide ratings of applications, sales rankings, categories, and search features for helping users to find applications. For example, a user may search for applications that other users have rated highly, for applications that are selling well, for applications with particular keywords in the description, and so forth. However, these may still result in a large number of applications through which the user sifts to find an appropriate application to complete the user's current goal.
Users may also use applications in wide variety of scenarios. For example, a single application store may include applications for desktop computers, mobile smartphones, car-based computer systems, and other types of devices. Application developers may provide multiple versions for running on each platform or may include selectable components that run on each platform. For example, a car version of an application may include a mobile interface, whereas a desktop version includes a keyboard/mouse interface. Alternatively, the application may include both interfaces in one version, and detect a platform that the application is running on to know which interface to use.
Once running, a user may use the application for a variety of purposes. For example, the user may run a Twitter application to gather read local news, to catch up with friends, to read celebrity news, to find out about events, and so forth. The application may include navigation features of its own to help the user whittle down the many functions that the user can perform with the application to one or two that the user is looking for. Often, the process of finding useful applications, configuring the application to work correctly on the user's platform of choice, and finding functionality within the application that is relevant to the user consumes significant time and can cause user frustration.